/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlets;

import beans.Dao;
import beans.Validator;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.Guest;

/**
 *
 * @author juli
 */
public class SendInvitation extends HttpServlet {

 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        /* En este proyecto; este servlet no recibe ni debe recibir nada por GET, 
         * asi que si se lleva a entrar al servelt
         * usando el metodo GET solamente redireccion al index.jsp
         */
        response.sendRedirect("index.jsp");
    }
    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession respuesta = request.getSession(true);
        PrintWriter out = response.getWriter();
        //Declaro e inicio las variables
        String hourI = request.getParameter("hourI");
        String hourF = request.getParameter("hourF");
        Dao d = new Dao();
        Validator v=new Validator();
        //Comienzo con las validaciones
        
        //campos vacios
        if(hourI.isEmpty() || hourF.isEmpty()){
            respuesta.setAttribute("error", "Some fields are empties");
            response.sendRedirect("horasValidas.jsp");

        } else {
            respuesta.removeAttribute("error"); 
            try {
                //Debo comprobar que la horaF sea mayor que la horaI
                 if(v.isHourBiggerThan(hourI, hourF)){
                      respuesta.setAttribute("error", "Choose the time of the end of the meeting after the start time.");
                      response.sendRedirect("horasValidas.jsp");
                 }else{
                     respuesta.removeAttribute("error"); 
                 try {
                                d.conectar();
                                //Llegado a este punto significa que todo esta correcto,
                                //por lo tanto ingreso a la DB*/
                                Integer id_inv=Integer.parseInt(respuesta.getAttribute("sessionInv").toString());
                                respuesta.removeAttribute("error"); 
                                //Guardo en Invitation los valores elegidos de hourI y hourF
                                d.saveHoursInv(id_inv, hourI, hourF);
                                //Guardo el meeting
                                d.registerMeeting(id_inv, hourI, hourF);
                                //Guardo los invitados
                                d.saveGuestsByInvitation(id_inv);
                                //A cada invitado guardo  invitacion y
                                respuesta.removeAttribute("sessionInv");
                                response.sendRedirect("index.jsp");
                                d.desconectar();
                               
                           } catch (Exception e) { out.println("Ocurrio la sig exception: " +e); }
                            
                            
            }
            } catch (ParseException ex) {
                Logger.getLogger(SendInvitation.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        
    }}